Eine Variable vereinbaren heisst einem Speicherplatz (einer Bitfolge) einen Namen und einen Datentyp zuordnen. In Visual Basic geschieht dies vor allem mit der Dim-Anweisung:
Dim Umsatz As Integer Dim Name As String
Dim ist die Abkürzung für dimensionieren, das heisst die Grösse und Art eines Speicherplatzes bemessen.
Die Zuweisung eines Datentyps ist aus den folgenden Gründen vorteilhaft:
Datentypen verbessern die Lesbarkeit. Zu Beginn eines Moduls oder Unterprogramms weist man jeder Variable und jeder benannten Konstante (siehe unten) einen Datentyp zu. Dies ermöglicht einen Überblick über einen Teil der vom Programm verwendeten Objekte.
Datentypen erhöhen die Speichereffizienz. Der Datentyp Integer benötigt zum Beispiel nur zwei, Double hingegen acht Bytes.
Datentypen erhöhen die Laufzeiteffizienz. Integer-Operationen sind zum Beispiel schneller als Double-Operationen.
Datentypen helfen Syntaxfehler vermeiden, weil jede Variable mit ihrer Vereinbarung verglichen werden kann. Wenn der Programmierer zum Beispiel aus Versehen Namen schreibt, so macht ihn der Compiler wegen der Vereinbarung Dim Name As String auf den Fehler aufmerksam.
Datentypen helfen Laufzeitfehler vermeiden, weil jeder Variablenwert mit der Vereinbarung verglichen werden kann. Einer als Dim Name As String vereinbarten Variablen darf zum Beispiel später nicht die Zahl 4711 anstelle der Zeichenkette “4711” zugewiesen werden.
Die Zelle eines Tabellenblatts verhält sich ähnlich wie eine Variable. Die Zelle B2 ist zum Beispiel eine “Schublade” für einen sich ändernden Zahlen- oder Textwert. Ordnen wir der Zelle die symbolische Adresse Umsatz zu, so wird die Ähnlichkeit zu einer mit Dim Umsatz As Double deklarierten Variable noch klarer. Der einzige Unterschied zwischen Variablen und Zellen ist, dass Variablen explizit deklariert werden müssen, während Excel einer Zelle implizit (automatisch) einen passenden Datentyp zuordnet. Ist der Zellinhalt zum Beispiel Apfelsaft, dann ordnet Excel der Zelle automatisch den Datentyp Zeichenkette (in VBA String) zu. In Visual Basic müssen Sie in Modulen, die mit Option Explicit beginnen, Datentypen unbedingt vereinbaren.
Vermeiden Sie Mehrfachvereinbarungen der folgenden Art:
Dim Vorname, Nachname As String
VBA vereinbart so nur die letzte Variable (Nachname) als String, vorangehenden Variablen wird automatisch der voreingestellte Datentyp Variant zugewiesen. Deklarieren Sie jede Variable auf einer neuen Zeile:
Dim Vorname As String Dim Nachname As String
Die Vereinbarung einer benannten Konstante (engl. named constant) enthält zusätzlich zum Namen der Konstanten und ihrem Datentyp einen Wert, der während des Programmablaufs konstant bleibt:
Const Grenze As Integer = 1000
Jedesmal wenn das Symbol Grenze im Programm vorkommt, ersetzt es VBA durch die unbenannte Konstante 1000. Benannte Konstanten verbessern die Lesbarkeit eines Programms. Ausserdem erleichtern Sie dessen Wartung: Der Programmierer braucht eine Änderung des Konstantenwertes nur einmal vorzunehmen.
Die ursprünglichen Varianten von BASIC kannten keine vom Benutzer vereinbarte Datentypen. Leider kann Visual Basic seine Abstammung nicht ganz verleugnen. Es prüft selbst benutzervereinbarte Typen weniger streng als Programmiersprachen wie Pascal und C++. Viele Fehler von VB-Programmierern entstehen dadurch, dass Datentypen automatisch in andere konvertiert (zum Beispiel von String nach Integer) oder fehlende Typvereinbarungen nicht gemeldet werden.